#ifndef GDN_SOUND_H
#define GDN_SOUND_H

#include "gdn/SoundBuffer.h"

namespace gdn
{
	//typedef void( *FinishSoundCallback )( const &iSound );

	class SoundManager;

	class Sound
	{
		public:
			void Play();
			void Pause();
			void Stop();

			bool IsPlaying() const;

			void SetLoop( bool theLoop );
			bool GetLoop() const;

			void SetOffset( float theOffset );
			float GetOffset() const;

			void SetVolume( float theVolume );
			float GetVolume() const;

			// I don't understand the point of this.... I'll wait on it. :P
			/*
			// Stole this idea from u9's TODO note from Warehouse Panic. :P
			void SetFinishCallback( FinishSoundCallback theCallback ); // I hope this works. :P
			FinishSoundCallback GetFinishCallback() const;
			//*/

		protected:
			friend class SoundManager;
			void SetSoundBuffer( const SoundBuffer& theSoundBuffer );

			sf::Sound sound;

	};
}

#endif // GDN_SOUND_H
